1. Field of the Invention
This invention relates generally to digital delivery systems, especially for digital video and digital audio data, and more specifically, to a transport stream demultiplexor system including packet remultiplexing function.
2. Discussion of the Prior Art
In an MPEG subsystem that receives content in transport stream format, a transport demultiplexor is used to separate the arriving stream into audio, video, and system data streams. The video data is sent to the video decoder, the audio data to the audio decoder, and the system data to system memory for further processing. In a set-top box application, this allows the program selected by the viewer to be separated and played.
Increasingly, there is a need to be able to store selected program(s) to a fixed storage device such as a hard drive for playback in the set-top box. This requires sending all data associated with the program; audio, video, and system data, to memory for subsequent transfer to the hard drive or other device.
Previously, we have disclosed techniques for storing and playing data based on using the PES, or Packetized Elementary Stream, format which allows for efficient content movement as described in commonly-owned, co-pending U.S. patent application Ser. Nos. 09/534643 and 09/535069, and in issued U.S. Pat. No. 6,662,329 the contents and disclosure of each of which are incorporated by reference herein.
However, an alternative of interest to system designers is to store the data in its original transport stream format, but filtering out packets that are not related to the program of interest. When doing this, it may be necessary to insert additional packets containing further information into the partial transport stream as it is being stored to allow subsequent playback. In fact, the ability to id add information to a stored stream may be generally used to add or modify stream information for a variety of purposes.
It would thus be highly desirable to provide an improved technique for adding new or additional packets to be inserted into a program streams to allow later playback.
Current techniques for adding new information require streaming the data into memory and then copying the data over to another location while inserting the new data as it is being copied which is inefficient in terms of both having to do a double move and consuming additional memory space. Thus, it would be further highly desirable to provide an improved technique for adding new or additional packets to be inserted into a program stream in a single pass.
It is an object of the present invention to provide in a digital data transport demultiplexor, a system and method for remultiplexing, i.e., inserting, packets including new content with a filtered transport stream as it is being stored to memory.
According to the invention, there is provided a transport demultiplexor system and queue remultiplexing methodology comprising: a) packet buffer for receiving data packets belonging to an input transport stream, each packet having a corresponding identifier identifying a program to which the packet belongs; b) a data unloader device for pulling successive packets from the packet buffer for storage in a memory storage device, and writing the pulled packets into contiguous address locations in the memory; c) a remultiplexor mechanism for generating an address offset associated with a next data packet pulled from the packet buffer to be stored in memory and writing it to a new memory location that is offset from a memory location assigned to a previously pulled packet, the offset defining a memory gap in the memory storage device capable of being filled new data content.
Advantageously, such a system and method is adapted for processing MPEG-2-compliant digital transport streams, however, may be applicable to other types of digital data communications.